The present invention relates to a method for designing a Viterbi decoder that decodes a punctured code at a high speed. More particularly, it relates to a structure and a method for depuncturing an input bit stream being input to a Viterbi decoder when the Viterbi decoder is designed by using a Radix-4 branch metric calculator.
Punctured codes are made of a code having a low code rate such as xc2xd, ⅓ and the like. Such punctured codes were first introduced in the year 1979. An academic paper made by Yasuda in the year 1984 has introduced a punctured code including an original code rate of xc2xd, constraint length of 3xcx9c9, and a code rate of ⅔xcx9c{fraction (13/14)}. After developing the punctured code made by Yasuda, a possibility of an actual implementation of the punctured code appeared.
By using a punctured code of xe2x85x9e code rate derived from a code having both xc2xd code rate and a constraint length of 7 in an error control code for DVB satellite transmission system and a digital satellite broadcasting in Korea, it would be understood that a practicality of the punctured code is certainly verified.
At present, many companies for manufacturing a semiconductor are producing a Viterbi decoder that has an original code rate of xc2xd, a punctured code rate of ⅔xcx9cxe2x85x9e, and an operation speed of tens of mega bit per seconds (Mbps). However, due to a limitation of a semiconductor integration technique and a Viterbi decoding technique based on Radix-2 branch metric calculator, a method for depuncturing a punctured code was based on Radix-2.
After that, an academic paper that discloses a Viterbi decoder of xc2xd code including a constraint length xe2x80x986xe2x80x99 was introduced in 1992. Here, the Viterbi decoder uses Radix-4 branch metric calculator, and is operated at a class of 140 Mbps. Accordingly, there is a need for designing a high-speed Viterbi decoder using Radix-4 branch metric calculator even in the punctured codes.
The reason why the Radix-4 branch metric calculator on behalf of Radix-2 branch metric calculator is employed is to ultimately enhance a decoding speed of Viterbi decoder by increasing the number of bits processed in a unit time in the Viterbi decoder. Although the Radix-4 branch metric calculator has a longer Input/Output calculation time as compared to the Radix-2 branch metric calculator, the Radix-4 branch metric calculator can obtain a faster Viterbi decoding speed as compared to the Radix-2 branch metric calculator under the condition that a total delay time of the Radix-4 branch metric calculator is below twice a total delay time of Radix-2 branch metric calculator, because the Radix-4 branch metric calculator can process 2-bits at one time. Therefore, by using the Radix-4 branch metric calculator, an improved Viterbi decoder operating at a high speed higher than that of the prior Viterbi decoder using the Radix-2 branch metric calculator can be implemented.
Since a problem of the depuncturing method relates to an implementation technique rather than a research object, the academic paper did not handle the problem of the depuncturing method as an important matter. A depuncturing method for a Viterbi decoder using Radix-2 branch metric calculator was registered as a Patent technique in the years 1995 and 1998. However, up to now, a depuncturing method for a Viterbi decoder using Radix-4 branch metric calculator is not shown in a Patent Publication document or other research documents.
FIG. 1 is an example of a depuncturing method for Radix-2 branch metric calculator, wherein the example relates to a code including an original code rate xe2x80x98xc2xdxe2x80x99, a constraint length xe2x80x987xe2x80x99, and a punctured code rate xe2x80x98xe2x85x9exe2x80x99.
Referring to FIG. 1, FIG. 1(a) shows xe2x85x9e punctured pattern, and indicates that parts of a punctured pattern xe2x80x980xe2x80x99 are punctured and not transmitted. A detailed description about a puncturing process is shown in FIG. 1(b). FIG. 1(c) indicates an actual transmission bit after the puncturing process. FIG. 1(d) is provided to calculate a branch metric in the Radix-2 branch metric calculator after depuncturing a received punctured code. In FIG. 1(d), a mark xe2x80x98Xxe2x80x99 indicates a punctured part of a transmitter, and the Radix-2 branch metric calculator considers this X zone as a dummy and does not perform a metric calculation in the X zone.
The depuncturing method relates to how to reorder the transmitted bits shown in FIG. 1(c) as an arrangement format of FIG. 1(d). One among conventional methods already registered as United States Patent is shown in FIG. 1(e) for implementing the depuncturing method by using two delay elements and two multiplexers having four input terminals and one output terminal (called 4:1 multiplexer). Here, the delay element stores a bit that is not currently used after being received.
A depuncturing method according to a conventional method is as follows. A currently received bit and a delay element""s output bit being delayed by one clock are connected to an input terminal of a muiltiplexer. The two multiplexers are used to output a depunctured bit, and select an output bit by regulating a selection signal about four input terminals of each multiplexer. It should be understood that output signals of the two multiplexers are regarded as a bit mapping corresponding to FIG. 1(d). The punctured part can be controlled by preventing that output signals of the multiplexers are transmitted to a decoder. In order to apply this method in a Radix-4 branch metric calculator, two 4:1 multiplexers should be added to a construction of FIG. 1(e), a control signal for operating a delay element, a selection signal of the multiplexer, and a processing signal of the punctured part should be properly changed.
In case of using a depuncturing method shown in FIG. 1(e) in Radix-4 branch metric calculator, the number of delay elements excepting the two delay elements should be first examined. For an input operation of the Radix-4 branch metric calculator receiving four input signals, two multiplexers should be added to the construction of FIG. 1(e), thereby preparing four multiplexers in total. In addition, a control signal for controlling output signal of the four multiplexers should be properly made.
As stated above, since the conventional art such as FIG. 1(e) does not consider applying a depuncturing method to Radix-4 branch metric calculator, applying the conventional art to Radix-4 branch metric calculator signifies is meaningless.
Accordingly, the present invention is directed to a structure and a method for depuncturing the punctured codes for Radix-4 branch metric calculation that substantially obviate one or more of the problems due to limitations and disadvantages of the related art.
It is an object of the present invention to provide a structure and a method for depuncturing an input bit stream being input to a Viterbi decoder when the Viterbi decoder is designed by using a Radix-4 branch metric calculator.
To achieve these and other advantages and in accordance with the purpose of the present invention, as embodied and broadly described, a depuncture structure for Radix-4 branch metric calculation in a high-speed Viterbi decoder includes:
first and second FIFOs for sequentially receiving I-signal, and storing the I-signal;
third and fourth FIFOs for sequentially receiving Q-signal, and storing the Q-signal;
first and second multiplexers for receiving output signals of the first and third FIFOs, and multiplexing them;
third and fourth multiplexers for receiving output signals of the second and fourth FIFOs, and multiplexing them;
a first Radix-2 branch metric calculator for receiving output signals of the first and second multiplexers, and performing a depuncturing function about them; and
a second Radix-2 branch metric calculator for receiving output signals of the third and fourth multiplexers, and performing a depuncturing function about them.
In another aspect, a depuncture method for Radix-4 branch metric calculation in a high-speed Viterbi decoder including four FIFOs, four multiplexers, and two Radix-2 branch metric calculators, includes the steps of:
(a) arranging a puncture pattern of a code rate (nxe2x88x921)/n transmitting a punctured bit of n bits about an input of (nxe2x88x921) bit in two rows I and Q, and periodically transmitting the puncture pattern arranged in the I and Q rows;
(b) sequentially receiving I-signal and Q-signal of the puncture pattern, alternately storing the I-signal and the Q-signal in two FIFOs, and simultaneously reading a data from the four FIFOs when the data is stored in the four FIFOs;
(c) multiplexing the data read from the four FIFOs, and outputting the data; and
(d) receiving the multiplexed data, and performing Radix-2 branch metric calculation about the multiplexed data.
Additional features and advantages of the invention will be set forth in the description which follows, and in part will be apparent from the description, or may be learned by practice of the invention. The objectives and other advantages of the invention will be realized and attained by the scheme particularly pointed out in the written description and claims hereof as well as the appended drawings.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are intended to provide further explanation of the invention as claimed.